package puziran.sofa.util;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SysUtil
{
//  public static String getSql(String vcTable, String vcIDField, String vcWhere, String vcFieldList, String vcPageRow, String vcPageCode)
//  {
//    int iPageCode = Integer.parseInt(vcPageCode);
//    String cSql = "select top " + vcPageRow + " " + vcFieldList + " from " + vcTable + " where";
//    if (iPageCode > 1) {
//      String cTopRow = Integer.toString((iPageCode - 1) * Integer.parseInt(vcPageRow));
//      cSql = cSql + "(" + vcIDField + "<(select min(" + vcIDField + ") from (select top " + cTopRow + " " + vcIDField + " from " + vcTable + " where 1=1 " + vcWhere + " order by " + vcIDField + " desc) as t)) " + vcWhere + " order by " + vcIDField + " desc";
//    }
//    else {
//      cSql = cSql + " 1=1 " + vcWhere + " order by " + vcIDField + " desc";
//    }
//    return cSql;
//  }
//
  public static String getDecode(String vcStr)
  {
    if (vcStr == null) return "";
    if (vcStr.length() <= 0) return ""; try
    {
      vcStr = URLDecoder.decode(vcStr, "utf-8");
      vcStr = URLDecoder.decode(vcStr, "utf-8");
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
    return vcStr;
  }
//
//  public boolean isNum(String str)
//  {
//    if ((str == null) || ("".equals(str))) return false;
//    Pattern pattern = Pattern.compile("(-)?{0,1}[0-9]*(\\.?)[0-9]*");
//    return pattern.matcher(str).matches();
//  }
//
  public boolean isInt(String str)
  {
    if (str == null) return false;
    Pattern pattern = Pattern.compile("[0-9]+");
    return pattern.matcher(str).matches();
  }
//
  public static Map removeFilter(Map map)
  {
    map.remove("EncodingFilter.FILTERED");
    return map;
  }
//
//  public static String getEncrypt(String vcOri)
//  {
//    String lcEncryptTxt = "";
//    if (vcOri == null) vcOri = "";
//    String lc = vcOri.substring(0, 1);
//    if (lc.length() < 1) lc = "a";
//    int liValue1 = lc.charAt(0);
//    int liRand = liValue1 % 10 * (liValue1 % 10) % 16;
//    for (int li = vcOri.length() + 1; li <= 15; li++) {
//      vcOri = vcOri + (char)(199 + liRand - li);
//    }
//    for (li = 1; li <= 15; li++) {
//      switch (li) { case 1:
//        liRand = 100; break;
//      case 2:
//        liRand = 111; break;
//      case 3:
//        liRand = 102; break;
//      case 4:
//        liRand = 77; break;
//      case 5:
//        liRand = 33; break;
//      case 6:
//        liRand = 255; break;
//      case 7:
//        liRand = 33; break;
//      case 8:
//        liRand = 48; break;
//      case 9:
//        liRand = 12; break;
//      case 10:
//        liRand = 19; break;
//      case 11:
//        liRand = 91; break;
//      case 12:
//        liRand = 66; break;
//      case 13:
//        liRand = 2; break;
//      case 14:
//        liRand = 128; break;
//      default:
//        liRand = 211;
//      }
//      liValue1 = (liRand + 12) * (liRand + 134 - vcOri.charAt(li - 1));
//      int liValue2 = (liRand - 2) * (liRand + 11 - vcOri.charAt(15 - li));
//      liValue1 = Math.abs(liValue1 + liValue2) % 1000;
//      lc = "000" + new Integer(liValue1).toString();
//      lcEncryptTxt = lcEncryptTxt + lc.substring(lc.length() - 3, lc.length());
//    }
//    return lcEncryptTxt;
//  }
//
  public static Map getDecodeMap(Map map)
  {
    Map m = new HashMap();

    Iterator keys = map.keySet().iterator();
    while (keys.hasNext()) {
      Object key = keys.next();
      Object value = map.get(key);
      m.put(key.toString(), getDecode(value.toString()));
    }
    return m;
  }
//
//  public static String getIsoDecodeString(String vcStr)
//  {
//    if (vcStr == null) return "";
//    if (vcStr.length() <= 0) return ""; try
//    {
//      vcStr = new String(vcStr.getBytes("iso-8859-1"), "UTF-8");
//    } catch (UnsupportedEncodingException e) {
//      e.printStackTrace();
//    }
//    return vcStr;
//  }
//
//  public static Map getIsoDecodeMap(Map map)
//  {
//    Map m = new HashMap();
//
//    Iterator keys = map.keySet().iterator();
//    while (keys.hasNext()) {
//      Object key = keys.next();
//      Object value = map.get(key);
//      String str = value.toString();
//
//      m.put(key.toString(), getIsoDecodeString(str));
//    }
//
//    return m;
//  }
//
//  public static String getIsoDecodeStr(String vcStr)
//  {
//    if (vcStr == null) return "";
//    if (vcStr.length() <= 0) return "";
//    String s = "";
//    try {
//      vcStr = new String(vcStr.getBytes("iso-8859-1"));
//    }
//    catch (UnsupportedEncodingException e)
//    {
//      e.printStackTrace();
//    }
//
//    return vcStr;
//  }
//
//  public static Map getIsoSelfAdaptDecodeMap(Map map)
//  {
//    Map m = new HashMap();
//
//    Iterator keys = map.keySet().iterator();
//    while (keys.hasNext()) {
//      Object key = keys.next();
//      Object value = map.get(key);
//      String str = value.toString();
//
//      m.put(key.toString(), getIsoDecodeStr(str));
//    }
//
//    return m;
//  }
}